//----------------------------------------------------------------------------------
// game 
// Author: Erley K
//
// Description:
// Probar el funcionamiento del reproductor de videos GameConect4 AVI.
//----------------------------------------------------------------------------------


#ifndef GAME_H
#define GAME_H

#include <iostream>
#include <vector>
#include <iterator>
#include "Board.h"
#include "BoardDef.h
#include "Token.h
#include "EndGameCondition.h
#include "Player.h
#include "PlayerDef.h"


//Struct SGameSettings
/*typedef struct sGameSetting
{
    MAP_SIZE				m_CBoardSize;
    
	unsigned int			m_uiRows;
	unsigned int			m_uiColumns;
	unsigned int			m_uiLevel;
	unsigned int			m_Tokens;
} 
GAME_SETTINGS;*/


//Enum GameStates
typedef enum eGameStates
{
    MENU,
    INIT,
    PAINT,
    CHOOSE_X_Y,
	CHECK,
    CHANGE_TURN,
    UPDATE,
	END,
    EXIT
} 
GAME_STATES;       
  

//Class CGame  
class CGame
{
    public:
		CGame();
        ~CGame();
        
        bool			UpdateGameState();
        
    private:
        GAME_STATES									m_eState;
		CBoard *									m_board;
        
        std::vector<CPlayer *>						m_players;
		std::vector<CEndGameCondition *>			m_checks;
		bool										m_bExit;
        
        void Menu();
        void Init();
        void Paint();
        void Choose_X_Y();
        void Check();
        void Change_Turn();
        void Update();
		void End();
        void Exit();
			
};


#endif